<HTML><HEAD><TITLE>modify_bound(+Flag, ?Svar, +Var)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(conjunto)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>modify_bound(+Flag, ?Svar, +Var)</H1>
Flag is a flag which takes its value in fglb, lubg.  It indicates the bound
of the set domain variable Svar which should be updated and take the value
Var which is ground.


<DL>
<DT><EM>+Flag</EM></DT>
<DD>A ground value from fglb, lubg.
</DD>
<DT><EM>?Svar</EM></DT>
<DD>A set domain variable.
</DD>
<DT><EM>+Var</EM></DT>
<DD>A ground set.
</DD>
</DL>
<H2>Description</H2>
   Flag is a flag which should take the value glb or lub, otherwise it
   fails.  If Svar is a ground set, it succeeds if we have Var equals to
   Svar.  If Svar is a set domain variable, its new lower or upper bound
   will be updated and take the value Var.  For monotonicity reasons, set
   domains can only get reduced.  So a new upper bound has to be contained
   in the old one and a new lower bound has to contain the old one.
   otherwise it fails.

<P>

<H3>Fail Conditions</H3>
   Fails if Svar is ground and different from Var or if the new upper bound
   is not contained in the old one or the new lower bound does not contain
   the old one.


<H3>Resatisfiable</H3>
   No.
<H2>Examples</H2>
<PRE>
[eclipse 9]: S `:: {1,2}..{1,2,3,4,6}, modify_bound(glb, S, {1,2,3}).

S = S{{1, 2, 3} .. {1, 2, 3, 4, 6}}
yes.



</PRE>
<H2>See Also</H2>
<A HREF="../../lib/conjunto/BNN-2.html">`:: / 2</A>, <A HREF="../../lib/conjunto/glb-2.html">glb / 2</A>, <A HREF="../../lib/conjunto/lub-2.html">lub / 2</A>, <A HREF="../../lib/conjunto/set_range-3.html">set_range / 3</A>
</BODY></HTML>
